import actionType from './actionType'

// 导出两个action add为加，sub为减
export const addAction = (id) => {
    console.log("addAction的id=",id)
    return {
        type: actionType.CART_ADD_AMOUNT,
        payload: {
            id
        }
    }
}

export const subAction = (id) => {
    console.log("subAction的id=",id)
    return {
        type: actionType.CART_SUB_AMOUNT,
        payload: {
            id
        }
    }
}

// 增加异步操作(延迟2秒) 需要npm i redux-thunk -S这个包的支持(一般异步action就是同步action的异步代理，所同步一般就可以不到导出，只导出异步对外暴露)
// export const subActionAsync = (id) => {
//     // 首先需要在store.js增加applyMiddleware
//     return (dispatch) => { //首先返回一个dispatch的引用
//         setTimeout(() => { // 可以在setTimeout等待时间还可以做其他事情
//             console.log("subAction的id=", id)
//             // dispatch({ //然后时间到了，在自动执行上面返回dispatch函数
//             //     type: actionType.CART_SUB_AMOUNT,
//             //     payload: {
//             //         id
//             //     }
//             // }) 
                // 直接调用同步方法（类似代理）
//             dispatch(subAction(id))
//         }, 2000)
//     }
// }
// 上面异步优雅的写法
export const subActionAsync = id => dispatch => {
    setTimeout(() => {
        dispatch(subAction(id))
    }, 2000)
}